// 全屏的高度
var FULL_SCREEM_HEIGHT = $(window).height();
// 全屏的宽度
var FULL_SCREEM_WIDTH = $(window).width();
// 头 高度
var HEADER_HEIGHT = 50;
// 尾 高度
var FOOTER_HEIGHT = 0;
// 线路名称长度
var WORKLINE_NAME_LENGTH = 50;
// 线路名称长度限制
var WORKLINE_NAME_LENGTH_SHOW = 27;
/**
 * 调整布局，SVG文件满屏
 */
var adjustLayout = function() {

	// 调整header和content的高度
	$("#debugpage").css("height", FULL_SCREEM_HEIGHT);
	$("#showfunc").css("height", FULL_SCREEM_HEIGHT - FOOTER_HEIGHT);
	$("#funccontent").css("height",
			FULL_SCREEM_HEIGHT - (HEADER_HEIGHT + FOOTER_HEIGHT + 20));

	$("#content").css("height",
			FULL_SCREEM_HEIGHT - (HEADER_HEIGHT + FOOTER_HEIGHT + 20));
};

/**
 * 显示对话框
 */
var showPopup = function(obj) {
	currObj = obj;

	// 对话框中的按钮都显示
	$("#popupmenu").popup("option", "positionTo", $(obj));
	$("#popupmenu").trigger("create");
	$("#popupmenu").popup("open");

	$("#menugroup").controlgroup("refresh");
};

/**
 * 显示指示器操作对话框
 */
var showIGroupOperPopup = function(obj) {
	currObj = obj;

	// 对话框中的按钮都显示
	$("#igrouppopupmenu").popup("option", "positionTo", $(obj));
	$("#igrouppopupmenu").trigger("create");
	$("#igrouppopupmenu").popup("open");

	$("#igmenugroup").controlgroup("refresh");
};

/*
 * 新增按钮绑定的事件
 */
var add = function(e) {
	var targetId = e.currentTarget.id;
	if ("schemeaddbtn" == targetId) {
		// 打开新增方案的对话框
		// $("#schemepopup").trigger("create").popup("open");
		$("#triggerschemepopup").click();
		$(".tipcontentspan", $("#schemepopup")).html("");
		$("#_id", $("#schemepopup")).val("");
		$("#schemename", $("#schemepopup")).val("");

		$("#schemename", $("#schemepopup")).focus();

		$("#schemeoperspan").html("添加");
		$(".ui-btn-text", $("#schemeeditbtn")).html("添加");
		$("#schemeeditbtn").unbind("click").bind("click", editScheme);
	} else {
		var temp = $(currObj);
		if (temp.hasClass("custom-scheme")) {
			// 打开新增线路的对话框
			// $("#worklinepopup").trigger("create").popup("open");
			$("#triggerworklinepopup").click();
			$(".tipcontentspan", $("#worklinepopup")).html("");
			$("#schemeid", $("#worklinepopup"))
					.val(temp.attr("id").split("_")[1]);
			$("#_id", $("#worklinepopup")).val("");
			$("#linename", $("#worklinepopup")).val("");
			$("#remark", $("#worklinepopup")).val("");

			$("#linename", $("#worklinepopup")).focus();

			$("#worklineoperspan").html("添加");
			$(".ui-btn-text", $("#worklineeditbtn")).html("添加");
			$("#worklineeditbtn").unbind("click").bind("click", editWorkLine);
		} else if (temp.hasClass("custom-workline")) {
			// 打开新增终端的对话框
			// $("#terminalpopup").trigger("create").popup("open");
			$("#triggerterminalpopup").click();
			$(".tipcontentspan", $("#terminalpopup")).html("");
			$("#lineid", $("#terminalpopup"))
					.val(temp.attr("id").split("_")[1]);
			$("#_id", $("#terminalpopup")).val("");
			$("#terminaladdr", $("#terminalpopup")).val("");
			$("#wirelessaddr", $("#terminalpopup")).val("");
			$("#location", $("#terminalpopup")).val("");

			$("#terminaladdr", $("#terminalpopup")).focus();

			$("#terminaloperspan").html("添加");
			$(".ui-btn-text", $("#terminaleditbtn")).html("添加");
			$("#terminalvirtualbtn").show();

			$("#terminaleditbtn").unbind("click").bind("click", editTerminal);
			// 虚拟终端按钮绑定事件
			$("#terminalvirtualbtn").unbind("tap").bind("tap", virtualTerminal);
			// 终端清空按钮绑定事件
			$("#terminalclearbtn").unbind("tap").bind("tap", clearTerminal);
		}
	}
};

/**
 * 编辑方案（新增或修改）
 */
var editScheme = function() {
	var _id = $("#_id", $("#schemepopup")).val();
	var schemename = $("#schemename", $("#schemepopup")).val();

	var msg = "";
	if (0 == schemename.trim().length) {
		msg = "方案名称不能为空!";
		$(".tipcontentspan", $("#schemepopup")).html(msg);
		$("#schemename", $("#schemepopup")).focus();
		return false;
	}
	if (30 < schemename.strLen()) {
		msg = "方案名称的长度不能超过30个字符!";
		$(".tipcontentspan", $("#schemepopup")).html(msg);
		$("#schemename", $("#schemepopup")).focus();
		return false;
	}

	var params = "{";
	if (null != _id && undefined != _id && 0 < _id.length) {
		params += "'_id': '" + _id + "',";
	}
	params += "'schemename': '" + schemename + "'";
	params += "}";
	window.schemejsi.addOrModifyScheme(params);
};

/**
 * 编辑的回调方法
 */
var editSuccessCallback = function(data) {
	var type = data.type;
	if (type) {
		if ("scheme" == type) {
			$("#schemepopup").popup("close");
		} else if ("workline" == type) {
			$("#worklinepopup").popup("close");
		} else if ("terminal" == type) {
			$("#terminalpopup").popup("close");
			// 判断是否已打开SVG
			if (WORK_SVG) {
				if (data.terminalId == $("#terminalid").val()) {
					var terminalAddr = data.terminalAddr;
					var wirelessAddr = data.wirelessAddr;
					$("#currterminal").val(terminalAddr);
					$("#twirelessaddr").val(wirelessAddr);

					var text = $("#TerminalAddr", WORK_SVG)[0];
					text.textContent = (data.terminalAddr).toUpperCase();
				}
			}
		}
	}

	// 刷新实施方案树
	window.schemejsi.querySchemeTreeNodes();
};

/**
 * 编辑线路（新增或修改）
 */
var editWorkLine = function() {
	var _id = $("#_id", $("#worklinepopup")).val();
	var linename = $("#linename", $("#worklinepopup")).val();
	var remark = $("#remark", $("#worklinepopup")).val();
	var schemeid = $("#schemeid", $("#worklinepopup")).val();

	var msg = "";
	if (0 == linename.trim().length) {
		msg = "线路名称不能为空!";
		$(".tipcontentspan", $("#worklinepopup")).html(msg);
		$("#linename", $("#worklinepopup")).focus();
		return false;
	}

	if (WORKLINE_NAME_LENGTH < linename.strLen()) {
		msg = "线路名称的长度不能超过" + WORKLINE_NAME_LENGTH + "个字符!";
		$(".tipcontentspan", $("#worklinepopup")).html(msg);
		$("#linename", $("#worklinepopup")).focus();
		return false;
	}

	var params = "{";
	if (null != _id && undefined != _id && 0 < _id.length) {
		params += "'_id': '" + _id + "',";
	}
	params += "'linename': '" + linename + "',";
	params += "'schemeid': '" + schemeid + "',";
	params += "'remark': '" + remark + "'";
	params += "}";

	window.worklinejsi.addOrModifyWorkLine(params);
};

/**
 * 编辑终端（新增或修改）
 */
var editTerminal = function() {
	var _id = $("#_id", $("#terminalpopup")).val();
	var terminaladdr = $("#terminaladdr", $("#terminalpopup")).val();
	var wirelessaddr = $("#wirelessaddr", $("#terminalpopup")).val();
	var lineid = $("#lineid", $("#terminalpopup")).val();
	var location = $("#location", $("#terminalpopup")).val();

	var msg = "";
	if (0 == terminaladdr.trim().length) {
		msg = "终端地址不能为空!";
		$(".tipcontentspan", $("#terminalpopup")).html(msg);
		$("#terminaladdr", $("#terminalpopup")).focus();
		return false;
	}

	if (8 != terminaladdr.length) {
		msg = "终端地址的长度错误, 长度为8个字符!";
		$(".tipcontentspan", $("#terminalpopup")).html(msg);
		$("#terminaladdr", $("#terminalpopup")).focus();
		return false;
	}

	if (0 == wirelessaddr.trim().length) {
		msg = "无线模块地址不能为空!";
		$(".tipcontentspan", $("#terminalpopup")).html(msg);
		$("#wirelessaddr", $("#terminalpopup")).focus();
		return false;
	}

	if (6 != wirelessaddr.length) {
		msg = "无线模块地址的长度错误, 长度为6个字符!";
		$(".tipcontentspan", $("#terminalpopup")).html(msg);
		$("#wirelessaddr", $("#terminalpopup")).focus();
		return false;
	}

	var params = "{";
	if (null != _id && undefined != _id && 0 < _id.length) {
		params += "'_id': '" + _id + "',";
	}
	params += "'terminaladdr': '" + terminaladdr + "',";
	params += "'wirelessaddr': '" + wirelessaddr + "',";
	params += "'lineid': '" + lineid + "',";
	params += "'location': '" + location + "'";
	params += "}";

	window.terminaljsi.addOrModifyTerminal(params);
};

/*
 * 修改按钮绑定的事件
 */
var modify = function() {

	var temp = $(currObj);
	var type_id = temp.attr("id");

	var id;
	if ("G" == type_id.substring(0, 1)) { // 指示器组
		// 准备参数，加载指示器组信息
		var terminalId = $("#terminalid").val();
		var groupNo = currObj.getAttribute("groupno");
		var params = "{terminalid: '" + terminalId + "', groupno: '" + groupNo
				+ "'}";
		window.indicatorjsi.queryIGroup(params);
		return;
	} else if ("Terminal" == type_id) { // 终端
		id = $("#terminalid").val();
	} else {
		id = type_id.split("_")[1];
	}

	var params = "{";
	if (null != _id && undefined != _id && 0 < _id.length) {
		params += "'_id': '" + id + "'";
	}
	params += "}";
	if (temp.hasClass("custom-scheme")) {
		window.schemejsi.querySchemes(params);
	} else if (temp.hasClass("custom-workline")) {
		window.worklinejsi.queryWorkLines(params);
	} else if (temp.hasClass("custom-terminal") || "Terminal" == type_id) { // +SVG上操作终端
		window.terminaljsi.queryTerminals(params);
	}
};

/**
 * 方案修改，加载方案的原始信息
 */
var loadSchemes = function(json) {
	var data = json.list;
	// 打开修改方案的对话框
	// $("#schemepopup").trigger("create").popup("open");
	$("#triggerschemepopup").click();
	$(".tipcontentspan", $("#schemepopup")).html("");

	$("#_id", $("#schemepopup")).val(data[0]._id);
	$("#schemename", $("#schemepopup")).val(data[0].schemename);

	$("#schemeoperspan").html("修改");
	$(".ui-btn-text", $("#schemeeditbtn")).html("修改");
	$("#schemeeditbtn").unbind("click").bind("click", editScheme);
};

/**
 * 线路修改，加载线路的原始信息
 */
var loadWorkLines = function(json) {
	var data = json.list;
	// 打开修改线路的对话框
	// $("#worklinepopup").trigger("create").popup("open");
	$("#triggerworklinepopup").click();
	$(".tipcontentspan", $("#worklinepopup")).html("");

	$("#_id", $("#worklinepopup")).val(data[0]._id);
	$("#linename", $("#worklinepopup")).val(data[0].linename);
	$("#remark", $("#worklinepopup")).val(data[0].remark);
	$("#schemeid", $("#worklinepopup")).val(data[0].schemeid);

	$("#worklineoperspan").html("修改");
	$(".ui-btn-text", $("#worklineeditbtn")).html("修改");

	$("#worklineeditbtn").unbind("click").bind("click", editWorkLine);
};

/**
 * 终端修改，加载终端的原始信息
 */
var loadTerminals = function(json) {

	// 打开修改终端的对话框
	$("#triggerterminalpopup").click();
	// $("#terminalpopup").trigger("create").popup("open");
	$(".tipcontentspan", $("#terminalpopup")).html("");

	$("#_id", $("#terminalpopup")).val(json[0]._id);
	$("#terminaladdr", $("#terminalpopup")).val(json[0].terminaladdr);
	$("#wirelessaddr", $("#terminalpopup")).val(json[0].wirelessaddr);
	$("#location", $("#terminalpopup")).val(json[0].location);
	$("#lineid", $("#terminalpopup")).val(json[0].lineid);

	$("#terminaloperspan").html("修改");
	$(".ui-btn-text", $("#terminaleditbtn")).html("修改");
	$("#terminalvirtualbtn").hide();

	$("#terminaleditbtn").unbind("click").bind("click", editTerminal);
	// 终端清空按钮绑定事件
	$("#terminalclearbtn").unbind("tap").bind("tap", clearTerminal);
};

/*
 * 删除按钮绑定的事件
 */
var remove = function() {
	var temp = $(currObj);

	// 打开删除方案的对话框
	// $("#removeconfirmpopup").trigger("create").popup("open");
	$("#triggerremoveconfirmpopup").click();

	if (temp.hasClass("custom-scheme")) {
		var type_id = temp.attr("id");
		var id = type_id.split("_")[1];
		$("#_id", $("#removeconfirmpopup")).val(id);
		$("#type", $("#removeconfirmpopup")).val("scheme");
		$("#removetypespan").html("方案");
	} else if (temp.hasClass("custom-workline")) {
		var type_id = temp.attr("id");
		var id = type_id.split("_")[1];
		$("#_id", $("#removeconfirmpopup")).val(id);
		$("#type", $("#removeconfirmpopup")).val("workline");
		$("#removetypespan").html("线路");
	} else if (temp.hasClass("custom-terminal")) {
		var type_id = temp.attr("id");
		var id = type_id.split("_")[1];
		$("#_id", $("#removeconfirmpopup")).val(id);
		$("#type", $("#removeconfirmpopup")).val("terminal");
		$("#removetypespan").html("终端");
	} else { // 指示器组和线段
		// 判断是指示器组还是线段
		var tags = temp[0].getAttribute("tags");
		if (tags) { // 指示器组
			var terminalId = $("#terminalid").val();
			var groupNo = temp[0].getAttribute("groupno");
			$("#_id", $("#removeconfirmpopup")).val(terminalId + "_" + groupNo);
			$("#type", $("#removeconfirmpopup")).val("indicator");
			$("#removetypespan").html("指示器组");
		}
	}

	// 删除确认对话框按钮绑定事件
	$("#removeyesbtn").unbind("click").bind("click", doRemove);
};

/**
 * 删除提交
 */
var doRemove = function() {
	var type = $("#type", $("#removeconfirmpopup")).val();
	var _id = $("#_id", $("#removeconfirmpopup")).val();

	if (type) {
		if ("scheme" == type) {
			window.schemejsi.removeScheme(_id + "");
		} else if ("workline" == type) {
			window.worklinejsi.removeWorkLine(_id + "");
		} else if ("terminal" == type) {
			window.terminaljsi.removeTerminal(_id + "");
		} else if ("indicator" == type) {
			var arr = _id.split("_");
			var terminalId = arr[0];
			var groupNo = arr[1];
			window.indicatorjsi.removeIGroup(terminalId, groupNo);
		}
	}
};

/**
 * 删除成功的回调方法
 */
var removeSuccuessCallback = function(data) {

	if (data && "terminal" == data.type) {
		if (data.terminalId == $("#terminalid").val()) {
			$("#implementcontent").html("");
			$("#svgoperdiv").hide(); // 操作按钮区域隐藏
			// 禁用导航按钮
			$("#modebar ul li input").button("disable");
			$("#modebar ul li div").removeClass("ui-btn-active");
		}
	}

	// 关闭删除确认对话框
	$("#removeconfirmpopup").popup("close");
	// 刷新实施方案树
	window.schemejsi.querySchemeTreeNodes();
};

/**
 * 停止删除的回调方法
 */
var removePauseCallback = function() {
	// 关闭删除确认对话框
	$("#removeconfirmpopup").popup("close");
	// 打开实施方案panel
	$("#showscheme").panel("open");
};

/**
 * 虚拟终端按钮绑定事件
 */
var virtualTerminal = function() {

	// 获取所有的实施方案树上的所有终端
	var terminals = $(".custom-terminal");

	// 获取后4位最大值
	var max = 0;
	for (var i = 0; i < terminals.length; i++) {
		var terminalAddr = $(terminals[i]).text();
		var tempNum = terminalAddr.substring(4);

		if (max < parseInt(tempNum, 16)) {
			max = parseInt(tempNum, 16);
		}
	}

	// 最大值+1
	max++;

	// 转成4位16进制数
	var strNum;
	strNum = max.toString(16);

	var len = strNum.length;
	for (var i = 4; i > len; i--) {
		strNum = "0" + strNum;
	}

	$("#terminaladdr", $("#terminalpopup")).val("TERM" + strNum);
	$("#wirelessaddr", $("#terminalpopup")).val("V12345");
	$("#location", $("#terminalpopup")).val("");
};

/**
 * 清空表單內容
 */
var clearTerminal = function() {
	$("#terminaladdr", $("#terminalpopup")).val("");
	$("#wirelessaddr", $("#terminalpopup")).val("");
	$("#location", $("#terminalpopup")).val("");
};